/*
 * DTDDocument.h
 *
 *  Created on: 16 mars 2011
 *      Author: bmaillot
 */

#ifndef DTDDOCUMENT_H_
#define DTDDOCUMENT_H_

#include <string>
#include <vector>
#include "Document.h"
#include "DTDEntityElement.h"
#include "DTDEntityAttList.h"
#include "../commun.h"

class DTDDocument : public Document
{
	protected :
		std::vector<DTDEntityElement*> elementList;
		std::vector<DTDEntityAttList*> attListList;

	public :
		DTDDocument();

		void addDtdElement(DTDEntityElement* entity);
		/**
		 * Ajoute un élément XML de type <!ELEMENT
		 */

		void addDtdAttList(DTDEntityAttList* entity);
		/**
		 * Ajoute un élément XML de type <!ATTLIST
		 */

		bool checkDocumentValidity(XMLElement* balise);
		/**
		 * Vérifie la validité du noeud (et fils) avec cette DTD.
		 * 	TRUE : Erreur dans le document
		 */
};


#endif /* DTDDOCUMENT_H_ */
